package cn.powerone.scm.mapper;

import java.util.List;
import cn.powerone.scm.domain.ScmEstimateQuotes;
import cn.powerone.scm.domain.ScmEstimateQuoteItems;

/**
 * 客户报价单Mapper接口
 * 
 * @author PowerOne
 * @date 2025-07-02
 */
public interface ScmEstimateQuotesMapper 
{
    /**
     * 查询客户报价单
     * 
     * @param id 客户报价单主键
     * @return 客户报价单
     */
    public ScmEstimateQuotes selectScmEstimateQuotesById(Long id);

    /**
     * 查询客户报价单列表
     * 
     * @param scmEstimateQuotes 客户报价单
     * @return 客户报价单集合
     */
    public List<ScmEstimateQuotes> selectScmEstimateQuotesList(ScmEstimateQuotes scmEstimateQuotes);

    /**
     * 新增客户报价单
     * 
     * @param scmEstimateQuotes 客户报价单
     * @return 结果
     */
    public int insertScmEstimateQuotes(ScmEstimateQuotes scmEstimateQuotes);

    /**
     * 修改客户报价单
     * 
     * @param scmEstimateQuotes 客户报价单
     * @return 结果
     */
    public int updateScmEstimateQuotes(ScmEstimateQuotes scmEstimateQuotes);

    /**
     * 删除客户报价单
     * 
     * @param id 客户报价单主键
     * @return 结果
     */
    public int deleteScmEstimateQuotesById(Long id);

    /**
     * 批量删除客户报价单
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteScmEstimateQuotesByIds(Long[] ids);

    /**
     * 批量删除估算报价单额外明细
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteScmEstimateQuoteItemsByQuoteIds(Long[] ids);
    
    /**
     * 批量新增估算报价单额外明细
     * 
     * @param scmEstimateQuoteItemsList 估算报价单额外明细列表
     * @return 结果
     */
    public int batchScmEstimateQuoteItems(List<ScmEstimateQuoteItems> scmEstimateQuoteItemsList);
    

    /**
     * 通过客户报价单主键删除估算报价单额外明细信息
     * 
     * @param id 客户报价单ID
     * @return 结果
     */
    public int deleteScmEstimateQuoteItemsByQuoteId(Long id);

    public  ScmEstimateQuotes selectScmEstimateQuotesBySupplierQuoteId(Long supplierQuoteId);
}
